package character;

import java.lang.reflect.Field;

public class Test {
    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        //字符串的拼接非常费效率  每拼接一次 都会生成一个StringBulder对象
        String str = "bit";
        //通过反射 可以将私有的改成可以获取的 然后  再放到新的数组里面 再进行修改
        Class<?> c1 = String.class;
        //获取String类中的value字段，这个value和String源码中的value是匹配的
        Field valueField = c1.getDeclaredField("value");
        //讲这个字段的访问属性设为true
        valueField.setAccessible(true);
        //把str中的value属性获取到，
        char[] value = ((char[]) valueField.get(str));
        //修改value的值
        value[0] = 'h';
        System.out.println(str);
        //此时就修改好了  但是通过 反射修改  是非常危险的！！！反射真正会用到 框架当中  可以不用但一定要有
    }
}
